//
// Created by martin on 1/28/22.
//

#ifndef MYMUDUO_NONCOPYABLE_H
#define MYMUDUO_NONCOPYABLE_H

namespace muduo
{
    /**
     * A tag class emphasises the objects are non-copyable.
     * A derived class should be a reference type rather than a value type.
     */
    class noncopyable
    {
    public:
        noncopyable(const noncopyable&) = delete;
        void operator=(const noncopyable&) = delete;

    protected:
        noncopyable() = default;
        ~noncopyable() = default;
    };
} // namespace muduo

#endif //MYMUDUO_NONCOPYABLE_H
